DDCSE использует удобный автоматический алгоритм расчёта смещения рабочих СК для каждого инструмента.
Вам нужно, только 1 раз указать координаты поверхности детали по Z, для одного инструмента. А для всех остальных инструментов, смещение будет рассчитано автоматически.

Алгоритм:
-Настройте автоматическую смену инструмента.
-Подключите датчик "Fixed Probe" и установите его машинные координаты.
-Установите настойку "#805 Automatic tool setting after tool change?" на "Yes".
-Вставьте любой номер инструмента в шпиндель (автосмена).
-Автоматически выполнится его зондирование на датчике "Fixed Probe".
-После выполнения пробинга инструмента, машинные координаты касания текущим инструментом, поверхности "Fixed Probe", будут сохранены в настройках #930-#945;
-Коснитесь кончиком этого инструмента, поверхности заготовки. Используйте кусочек бумаги.
-Выполните "Monitor-Clear-Clear Z". Или выполните команду #[807+[#578-1]*5] = #882-#[1430+[#1300-1]]
-Или, вместо ручного определения поверхности заготовки, вы можете выполнить зондирование поверхности заготовки, в режиме "0" (выполните последовательно 2 команды: "#1502=0" ; "M98P502"). Тогда предыдущие 2 пункта, можно пропустить.
-Теперь, при смене инструмента на любой другой номер, машинные координаты нулевой точки по Z, в текущей рабочей СК, будут вычислены автоматически. До установки другой заготовки, Вам больше не придётся обнулять ось Z на поверхности заготовки.


Это также можно использовать и для шпинделей с ручной сменой инструмента:
-Подключите датчик "Fixed Probe" и установите его машинные координаты.
-Вставьте в шпиндель любой инструмент.
-Выполните его зондирование на датчике "Fixed Probe". То есть:
-Выполните команду #1502=2 (определяет тип зондирования).
-Выполните команду M98P502 (запускает зондирование).
-После выполнения пробинга инструмента, машинные координаты касания текущим инструментом, поверхности "Fixed Probe", будут сохранены в настройках #930-#945;
-Коснитесь кончиком этого инструмента, поверхности заготовки. Используйте кусочек бумаги.
-Выполните "Monitor-Clear-Clear Z". Или выполните команду #[807+[#578-1]*5] = #882-#[1430+[#1300-1]] 
-Или, вместо ручного определения поверхности заготовки, вы можете выполнить зондирование поверхности заготовки, в режиме "0" (выполните последовательно 2 команды: "#1502=0" ; "M98P502"). Тогда предыдущие 2 пункта, можно пропустить.
-Теперь, при установке любого другого инструмента, Вам следует выполнять его зондирование на датчике "Fixed Probe". Тогда, машинные координаты нулевой точки по Z, в текущей рабочей СК, будут вычислены автоматически.

-------------------------------------------------------------------------------------------------------------------------------------------------------
Пример расчёта смещения СК:

Текущая СК：G54
Текущий инструмент：Т1
Текущая компенсация длины инструмента: H1

"Текущая координата заготовки по Z, в текущей рабочей СК (G54)" = "Текущая маш. координата Z" - "Смещение по Z в текущей рабочей СК (G54)" - "Временное смещение по Z, G52" - "Смещение инструмента T1 по Z" - "Длина инструмента H"

Вот как это выглядите в G-коде:

#852 - Текущая координата заготовки по Z, в текущей рабочей СК;
#882 - Текущая маш. координата Z;
#807 - Смещение G54 по Z в текущей рабочей СК;
#1430 - Настройка "#930 T01 Z offset";
#837 - Временное смещение по Z, G52;
#900 - Настройка "#400 H01 tool length offset";

#852=#882-#807-#1430-#837-#900

----------------------------------------------------------------------------------------------------------------------------------------------------
Обнуление осей из G-code, с компенсацией смещения инструментов.

Если например:
Текущая СК: G54
Номер инструмента: Т1
Смещение Т1 по Z (настройка #930): -25мм
То команда #807=#882, установит не "0" для оси Z в G54, а "25".
То есть, писать "#807=#882" для обнуления Z, можно только в том случае, если смещения по Z для всех инструментов, гарантированно равны нулю.

#[807+[#578-1]*5] = #882-#[1430+[#1300-1]]  ;Обнуление Z в любой текущей СК (эта команда аналогична "Monitor-Clear-Clear Z")
#807 = #882-#[1430+[#1300-1]]  ;Обнуление Z в СК G54 

#[805+[#578-1]*5] = #880-#[1390+[#1300-1]]  ;Обнуление X в любой текущей СК (эта команда аналогична "Monitor-Clear-Clear X")
#805 = #880-#[1390+[#1300-1]]  ;Обнуление X в СК G54

#[806+[#578-1]*5] = #881-#[1410+[#1300-1]]  ;Обнуление Y в любой текущей СК (эта команда аналогична "Monitor-Clear-Clear Y")
#805 = #880-#[1390+[#1300-1]]  ;Обнуление Y в СК G54 

Обратите внимание, что для 4й и 5й оси, настройки смещения инструментов отсутствуют.
Поэтому:

#[808+[#578-1]*5] = #883  ;Обнуление 4й оси в любой текущей СК (эта команда аналогична "Monitor-Clear-Clear 4th")
#808 = #883  ;Обнуление Y в СК G54

#[809+[#578-1]*5] = #884  ;Обнуление 5й оси в любой текущей СК (эта команда аналогична "Monitor-Clear-Clear 5th")
#809 = #884  ;Обнуление Y в СК G54:
--------------------------------------------------------------------------------------------------------------------
Обнуление смещения текущей рабочей СК из G-code, с компенсацией смещения инструментов. Т-е рабочие координаты=машинные координаты.
Это бывает полезно для команды G31. Чтобы она работала в машинной СК.

#[805+[#578-1]*5] = #[1390+[#1300-1]]*-1  ;Обнуление смещения X в текущей рабочей СК
#805 = #[1390+[#1300-1]]*-1  ;Обнуление смещения X в СК G54

#[806+[#578-1]*5] = #[1410+[#1300-1]]*-1  ;Обнуление смещения Y в текущей рабочей СК
#806 = #[1410+[#1300-1]]*-1  ;Обнуление смещения Y в СК G54

#[807+[#578-1]*5] = #[1430+[#1300-1]]*-1  ;Обнуление смещения Z в текущей рабочей СК
#807 = #[1430+[#1300-1]]*-1  ;Обнуление смещения Z в СК G54

Обратите внимание, что для 4й и 5й оси, настройки смещения инструментов отсутствуют.
Поэтому:

#[808+[#578-1]*5] = 0  ;Обнуление смещения 4й оси в текущей рабочей СК
#808 = 0  ;Обнуление смещения 4й оси в СК G54

#[809+[#578-1]*5] = 0  ;Обнуление смещения 5й оси в текущей рабочей СК
#809 = 0  ;Обнуление смещения 5й оси в СК G54
--------------------------------------------------------------------------------------------------------------------
Вы также можете менять текущую машинную позицию каждой оси, изменяя значение переменных машинной позиции. 
Это равнозначно выполнению процедуры хоуминга. Около имени оси на главном экране, появляется значок "захоумленности".
Примеры:

#880=0  ;Обнуляет текущую машинную позицию оси X;
#881=0  ;Обнуляет текущую машинную позицию оси Y;
#882=0  ;Обнуляет текущую машинную позицию оси Z;
#883=0  ;Обнуляет текущую машинную позицию 4й оси;
#884=0  ;Обнуляет текущую машинную позицию 5й оси;

Один из важных примеров использования этого - быстрое отображение значений переменных. Например, Вам нужно узнать значение переменной "#1430".
Для этого вы пишете в MDI команду "#884=#1430" и выполняете её. После этого, машинная позиция 5й оси, изменится на значение переменной "#1430".
Это можно использовать, как быстрый вариант команды "RECORD".

